﻿package com.t3.fx  
{
	import com.t3.anistory.Notebook;
	import com.t3.client.T3Client;
	import com.t3.tuio.TUIOEvent;
	import com.t3.tuio.TUIOObject;
	import flash.display.Sprite;
	
	import flash.display.Loader;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.net.URLRequest;
	 
	public class WoordArea extends TUIOObject
	{	
		public static const ID:uint = 0;
		
		[Embed(source='/woordenboek.swf')]
		private static var mc_Woordenboek:Class;
		
		private var mc_woordenboek:MovieClip;
		
		private var notebook:Notebook;
		
		private var draggedWords:uint;
		
		private var initialized:Boolean = false;
				
		private var _woorden:String = "as bak bal bel bil boom hol hun fel fit hut ik juf nek muur mug met poot pop rug tak tas wel weg wol beul doek jouw mouw riet vier bier doel koe muil rijp vies bijl duif koek muis roem vijf boef duim wiel poes puin riem zoet heer keer leer meer neer teer veer weer zeer boor door goor hoor koor oor voor deur geur keur zeur beul doek mouw riet vier tak tas wel weg wol as dik hut kou neus roer voer boek fier kous heer keer boor door deur geur heer keer leer meer bleek fris knop slaap stal troon blij fruit kraag slag stam trouw blik glas kraal slak stap vlag bloem graaf tak tas wel weg neus baars gips kant lijmt pakt rust bakt haalt kast lijst poets sint beest haast keert lint pols soms belt hakt trekt trimt vraagt zwijgt zwoegt blaast graaft knoopt prikt smeert stoort blaft grens kramp prins smelt stopt blijft grijpt krans proeft spaart stuurt breekt gromt verst vorst walst winst worst kraan slap steeg vlak bloes graag kras kent lukt pomp soort best hals kers krant proest trapt broers klant blaast graaft knoopt prikt smeert stoort barst dikst hoogst laagst poetst winst borst dorst kleinst laatst tekst worst botst dunst komst leukst verst danst fietst koorts kraan slap steeg vlak bloes aard bad boord dood goed held afgrond band bord draad goud hemd afscheid bed brand eend graad hoed afstand beeld erger anders kapster spreeuw kieuw lampen leuren nachten nieuwe lijnen rangen uien wrede kelder spiegel winter anker ezel kelner waard zwaard lood nood schild tand beeld afstand hoed graad afscheid acht gat kreet naast ruit tot beest geit krijt nat schaft triest beurt groet kuit nest schot uit bezit grot tand schild nood zwaard rangen aapje dijkje groepje kindje muisje potje baardje baantje beertje biertje blauwtje boortje deurtje duwtje armpje bloempje darmpje droompje duimpje bezit lampen nieuwe lijnen afstand afscheid apen drama kleding muren rode avond droge kleren muziek roman banen dure knopen najaar ruwe basis duren konijn namen benen duimpje droompje bloempje blauwtje duwtje stad vreemd wond zand kunst nicht schrift doosje grotje geurtje haartje heertje kraampje naampje enorm koning negen samen beren eten aapje dijkje groepje kindje muisje dame draden even foto gratis heren helaas hele jaren lading leraar malen namen open oma poten schade schepen serie zowel apen drama kleding muren avond ramen zoveel deze jaren molen rare zover dode jawel moment reden zowel draden kale motor regen apen avontuur blote buren draden helaas lading schade schepen kwade noten schade bladen even lading olie schaduw blote gaten lage oma schalen bodem gele late opa schapen bomen gluren zowel serie poten zover zoveel poging toneel dagen helaas mate poten totaal daken hele mede protest wereld dame hoge meren pure woning deken holen mode buren noten even olie foto spraak spruit strek stroom sprak straat striem stroop spreek straf strijk strop spreuk strak strik struik spriet streek strip sproet dikst hoogst laagst poetst laagst schaaf schel schoof schep school schaal scheur schoon schaam schram schrap schreef schriel schrift schrijf schrik schril schroef schrok schroot spraak spruit strek stroom sprak liefst vorst dienst fijnst korst minst walst streep stroef spraak sprak spreek spreuk spriet schop schoof schuif schuil schram schreef schriel schrijf worp zalf zulk brei kei sein dweil klei sprei ei klein steil eik nauw blauw paus dauw pauw flauw rauw gauw saus grauw schroot schrik scheur koorts fietst breng lang ding langs dong meng rang eng ring blank klinkt stinkt blink klonk stonk blonk link stronk bonk grauw blauw schrijf schriel struik spreuk arm ernst hurk molk tolk worm balk film hurkt palm tulp worp berg galm jurk park twaalf zalf berk golf bonk stronk kous gips koek gein plein wei geit prei snauw kauw klauw kreng zing kring links wenk brink kalf perk verf zalm borg half kalk twaalf galm balk link ach jacht licht plicht specht vrucht acht klacht lucht pracht toch wacht bocht knecht macht recht tocht zacht bracht kocht jurk palm stonk langs breng eeuw geeuw leeuw schreeuw sneeuw spreeuw kieuw nieuw nieuws uw duw luw ruw schuw sluw spuw stuw lang walst strop strijk stoort blaft blij bijl baai draai graai haai kraai maai naai dooi fooi gooi hooi kooi mooi schooit bloei boei broeit foei groeit knoeit snauw kreng klinkt zwart zweet mocht rechts vecht zich dacht kracht nacht sneeuw spreeuw kieuw nieuw duw luw paai saai taai fooi gooi stoeit woei beul doek mouw heer deur aarde buiten fouten koeken lampen nachten baarden danken fraaie honden landen denken geeuwen jongen lengen nergens banken derde geiten kaarsen macht recht zalm borg kring achter engel jager nagel snorkel water adem enkel kamers neger somber wijzer ander enkels kapster nevel speler winkel anders erger stoeit spreeuw vecht snauw kring";

		private var _srcWoorden:Array;
		private var _allWoorden:Array = new Array(); 
		private var _curWoorden:Array = new Array();
		
		public function WoordArea( event:TUIOEvent ) : void
		{
			super( event, true ) ;
			
			mc_woordenboek = new mc_Woordenboek();
				
			notebook = T3Client.waslijn.currentStory.notebook;
			_srcWoorden = _woorden.split(" ");
			this.mc_woordenboek.x -= 290;
			this.mc_woordenboek.y += 75;
			this.mc_woordenboek.scaleX = 1.2;
			this.mc_woordenboek.scaleY = 1.2;
			initWoorden();
			this.addChild( mc_woordenboek );
			
		}
		
		public function init() : void 
		{
			openBoek();
			initialized = true;
		}
		
		public override function update( event:TUIOEvent, ignoreEvent:Boolean = false ):void
		{	
			super.update(event);
			if (!initialized)
			{
				init();
			}
		}
		
		protected override function repaint():void{}
		
		private function initWoorden():void
		{
			for( var i:uint = 0; i < _srcWoorden.length; i++ )
			{
				var letter:Letter = new Letter( _srcWoorden[ i ], "word", 48 );
				woorden.push(letter);
			}
		}
		
		public override function addToStage():void
		{
			if( !_timer.running )
			{
				this.openBoek();
			}
			
			super.addToStage();
		}
		
		private function openBoek():void
		{
			if( mc_woordenboek != null )
			{
				mc_woordenboek.gotoAndPlay( "close" );
				clearWoorden();
				randomWoorden( 12 );
			}
		}
		
		private function clearWoorden():void
		{
			for each( var letter:Letter in _curWoorden )
			{
				if( contains( letter ) )
				{
					removeChild( letter );
				}
			}
			
			_curWoorden = new Array();
		}
		
		private function randomWoorden( numWords:uint ):void
		{
			for( var i:uint = 0; i < numWords; i++ )
			{
				var index:uint = Math.random() * woorden.length;
				var letter:Letter = woorden[ index ];

				letter.stageLoc = this.stageLoc;
				letter.x += -260 + 240 * ( Math.floor( i / ( numWords / 2) ) );
				letter.y += 83 + ( 52 * i ) % ( 52 * (numWords / 2) );
				
				currentWoorden.push( letter );
				this.addChild( letter );
			}
		}
		
		public function changeWord( letter:Letter ):void
		{
			var index:uint = Math.random() * woorden.length;
			letter.letter = _srcWoorden[ index ];
		}
		
		public function get woordenboek():MovieClip 
		{
			return mc_woordenboek;
		}
		
		public function addChar():void
		{
			draggedWords++;
		}
		
		public function removeChar():void
		{
			if (draggedWords > 0)
			draggedWords--;
		}
		
	 	public function get woorden():Array
		{
			return _allWoorden;
		} 
		
		public function get currentWoorden():Array
		{
			return _curWoorden;
		}
	}
}